//
//  Person.m
//  02-ClassAndObject
//
//  Created by dllo on 16/7/5.
//  Copyright © 2016年 yh. All rights reserved.
//

#import "Person.h"

@implementation Person

// 实例方法的实现
- (void)sleep:(NSInteger)time {
    NSLog(@"这个人睡了%ld小时", time); // NSLog 是C语言的函数
}

// 将传进来的name赋给_name
- (void)setName:(NSString *)name {
    _name = name;
}

- (NSString *)name {
    return _name;
}

// setter 和 getter 在mrc中的书写
//- (void)setName:(NSString *)name {
//    if (_name != name) {
//        [_name release];
//        _name = [name retain];
//    }
//}
//
//- (NSString *)name {
//    return [[_name retain] autorelease];
//}

// 初始化方法实现
// 无论调用哪个初始化方法都会执行的初始化方法叫做指派初始化方法
- (instancetype)initWithName:(NSString *)name age:(NSInteger)age {
    self = [super init];
    if (self) {
        _name = name;
        _age = age;
    }
    return self;
}

- (instancetype)initWithName:(NSString *)name {
    return [self initWithName:name age:0];
}

- (instancetype)initWithAge:(NSInteger)age {
    return [self initWithName:nil age:0];
}

+ (instancetype)personWithName:(NSString *)name age:(NSInteger)age {
    return [[[Person alloc] initWithName:name age:age] autorelease];
}





@end
